public interface StoreEngine {
    //尾插数据
    StoreEngine append(Object ... newData);
    //头插数据
    StoreEngine prepend(Object ... newData);
    //指定位置插入数据
    StoreEngine add(int index, Object ... newData);

    //返回数据个数
    int len();

    // 返回第几个数据
    Object find(int index);

    // 返回第一个数据
    Object first();
    // 返回最后一个数据
    Object last();

    // 返回指定起始位置开始查找，并且指定返回查找到的结果个数
    StoreEngine find(int start, int num, Object key, DataCompare cmp);

    // 返回查找到的第几个数据
    Object findOf(int index, Object key, DataCompare cmp);
    // 返回查找到的前几个数据
    StoreEngine findNum(int num, Object key, DataCompare cmp);
    // 返回查找到所有数据
    StoreEngine findAll(Object key, DataCompare cmp);

    //对数据进行排序, 升序/降序由比较接口对象来决定
    StoreEngine sort(DataCompare cmp);

    /*
     * //更新第几个数据
     * StoreEngine update(int index, Object newData);
     * // 更新指定数据(可以指定起始查找位置并且指定更新个数)
     * StoreEngine update(int start, int num, Object key, Object newData, DataCompare cmp);
     * // 更新指定数据(指定更新查找到的几个数据)
     * StoreEngine updateOf(int index, Object key, Object newData, DataCompare cmp);
     * //更新指定数据(指定更新查找到的前几个数据)
     * StoreEngine updateNum(int num, Object key, Object newData, DataCompare cmp);
     * // 更新指定数据
     * StoreEngine updateAll(Object key, Object newData, DataCompare cmp);
     */

    //删除第几个数据
    StoreEngine delete(int index);
    StoreEngine delete(int start, int num, Object key, DataCompare cmp);
    StoreEngine deleteOf(int index, Object key, DataCompare cmp);
    StoreEngine deleteNum(int num, Object key, DataCompare cmp);
    StoreEngine deleteAll(Object key, DataCompare cmp);

    // 清空所有数据
    StoreEngine clean();

    // 遍历接口
    // 实现重置遍历标识
    StoreEngine rewind();
    // 返回下一个数据元素
    Object getNext();
}
